<template>
	<div style="height:3000px">
		<!-- 工单领料 -->

			<v-card>
				<v-card-title>
					<v-row >
						<v-col cols="3">
							<v-btn class="ml-2"  tile color="primary" @click.stop="AddDialog()">
								新增
							</v-btn>
							<v-btn class="ml-2"  tile color="error" @click.stop="deleteOrder()">
								删除
							</v-btn>
						</v-col>
						<v-col cols="8" >
								<v-row >
									<v-col cols="2" >
										<v-text-field label="单据号" v-model="Ssourceorder" placeholder="单据号" dense outlined>
										</v-text-field>
									</v-col>
										
									<v-col cols="2" >
										<v-text-field label="物料代码" v-model="Sitemcode" placeholder="物料代码" dense outlined>
										</v-text-field>
									</v-col>
									
									<v-col cols="2" >
										<v-text-field label="物料名称" v-model="Sitemname" placeholder="物料名称" dense outlined>
										</v-text-field>
									</v-col>
								
									<v-col cols="2" >
										<v-text-field label="项目号" v-model="Sproject" placeholder="项目号" dense outlined>
										</v-text-field>
									</v-col>
									
									<v-col cols="2">
										<v-select  v-model="flagselect" :items="flagitems"
															item-text="name"
										          item-value="value"
											outlined dense label="盘盈盘亏">
										</v-select>
									</v-col>
									
									<v-col cols="2">
										<v-btn depressed color="primary" @click="searchinfo()" tile>查询</v-btn>
									</v-col>
								</v-row>																												
						</v-col>
						
						<v-col cols="1" align="end">
							<v-btn dark color="blue lighten-3" @click="refreshApps">
								<v-icon dark>mdi-refresh-circle</v-icon>刷新
							</v-btn>
						</v-col>
						
					</v-row>					
				</v-card-title>
				
				<v-alert dense text color="blue-grey"></v-alert>
				
				<v-data-table :headers="HeaderList" :items="DataList" small dense
					fixed-header item-key="id"  class="text-no-wrap" show-select  v-model="selected"
					loading-text="正在加载请稍等......" :loading="HOrderLoading"
					:options.sync="HOrderOptions" :footer-props="vuetifyDefaultPage"
					:server-items-length="HOrderTotalCount"
					>
					<template v-slot:item.checkflag="{ item }">
						<v-chip v-if="item.checkflag == 0" small label color="info"
							
						>
							未审核
						</v-chip>
						<v-chip v-else-if="item.checkflag == 1" color="primary" small label
							
						>
							盘盈
						</v-chip>
						<v-chip v-else-if="item.checkflag == 2" color="error" small label
							
						>
							盘亏
						</v-chip>
						<v-chip v-else-if="item.checkflag == 3" color="success" small label
							
						>
							正常
						</v-chip>
						<v-chip v-else color="info" small label
							
						>
							未审核
						</v-chip>
					</template>
					<template v-slot:item.actions="{ item }">
			      <v-btn tile color="warning" small @click.stop="EditDialog(item)">
							<v-icon left>
								mdi-pencil
							</v-icon>
							编辑
			      </v-btn>
			    </template>
				</v-data-table>
				
			</v-card>
	
	

		<!-- 对话框 -->
		<v-dialog v-model="AddOrEditDialog" max-width="1000px">
			<v-card>
				<v-card-title class="text-h5">
				  {{DialogHeader}}
				</v-card-title>
				<v-card-text>
				  <div class="mb-12">
				  	<v-row dense>
				  		<v-col cols="12">
				  			<v-row>
									<v-col cols="6">
										<v-text-field label="单据编号"  clearable :rules="[rules.required]"
											v-model="DialogBill.sourceorder">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="项目号"  clearable :rules="[rules.required]"
											v-model="DialogBill.project">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="仓库"  clearable :rules="[rules.required]" 
											v-model="DialogBill.warehouse">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="库区"  clearable :rules="[rules.required]" 
											v-model="DialogBill.zonecode">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="库位"  clearable :rules="[rules.required]" 
											v-model="DialogBill.location">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="物料编号"  clearable :rules="[rules.required]"
											v-model="DialogBill.itemcode">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="物料名称"  clearable :rules="[rules.required]"
											v-model="DialogBill.itemname">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="规格"  clearable :rules="[rules.required]"
											v-model="DialogBill.spec">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="批次"  clearable :rules="[rules.required]" 
											v-model="DialogBill.lot">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="库存数量"  clearable :rules="[rules.required]" 
											v-model="DialogBill.locationqty">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="盘点数量"  clearable :rules="[rules.required]" 
											v-model="DialogBill.countqty">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="盘差数量"  clearable :rules="[rules.required]" 
											v-model="DialogBill.diffqty">
										</v-text-field>
									</v-col>
									
									
									<v-col cols="6">
										<v-select  v-model="DialogBill.checkflag" :items="Scheckflag"
															item-text="name"
										          item-value="value"
											 label="审核标识">
										</v-select>
									</v-col>
				  			</v-row>
				  		</v-col>
				  	</v-row>
				  </div>
				</v-card-text>
				<v-card-actions>
				  <v-spacer></v-spacer>
					
				  <v-btn
				    color="green darken-1"
				    text
				    @click="confirmOrder()"
				  >
				    提交
				  </v-btn>
					
				  <v-btn
				    color="green darken-1"
				    text
				    @click="AddOrEditDialog = false"
				  >
				    关闭
				  </v-btn>
				</v-card-actions>
			</v-card>
		</v-dialog>
		
		<v-dialog v-model="deldialog" class="text-center" width="300px">
			<v-card >
						<v-card-title>提示</v-card-title>
						<v-card-text>
							您确定要删除吗？
						</v-card-text>
						<v-card-actions>
							<v-col cols="8">
								<v-btn @click="SureDelete()" color="error">确定</v-btn>
							</v-col>
							<v-col cols="4">
								<v-btn @click="deldialog = false">取消</v-btn>
							</v-col>						
						</v-card-actions>
			</v-card>
		</v-dialog>
		
	</div>
</template>

<script>
export default {
  name: 'wms_operations_cyclecount',
  data: () => ({
		  Ssourceorder:'',
			Sitemcode:'',
			Sitemname:'',
			Sproject:'',
			flagselect:-1,
			flagitems:[
				{name: '所有', value:-1},
				{name: '未审核', value:0},
				{name: '盘盈', value:1},
				{name: '盘亏', value:2},
				{name: '正常', value:3},
			],
			Scheckflag:[
				{name: '未审核', value:0},
				{name: '盘盈', value:1},
				{name: '盘亏', value:2},
				{name: '正常', value:3},
			],
  		AddOrEditDialog: false,
			deldialog:false,
  		HeaderList: [
  			{ text: '单据编号',value: 'sourceorder'},
				{ text: '项目号', value: 'project' },
				{ text: '仓库', value: 'warehouse' },
				{ text: '库区', value: 'zonecode' },
				{ text: '库位', value: 'location' },
				{ text: '物料编号', value: 'itemcode' },
  			{ text: '物料名称', value: 'itemname' },
				{ text: '规格', value: 'spec' },
				{ text: '批次', value: 'lot' },
				{ text: '库存数量', value: 'locationqty' },
				{ text: '盘点数量', value: 'countqty' },
				{ text: '盘差数量', value: 'diffqty' },				
				{ text: '盘盈盘亏', value: 'checkflag' },
				{ text: '审核时间', value: 'checktime' },
				{ text: '创建人', value: 'created_byname' },
				{ text: '创建时间', value: 'created_time' },
				{ text: '编辑人', value: 'updated_byname' },
				{ text: '编辑时间', value: 'updated_time' },
				{ text: '操作', value: 'actions' },
  		],
			DialogBill:{
				id:'',
				dbid:'',
				isavailable:true,
				created_by:'',
				created_byname:'',
				updated_by:'',
				updated_byname:'',
				company:'',
				created_time:'',
				updated_time:'',
				accountingbookcode:'',	
										
				sourceorder:'',
				project:'',
				warehouse:'',
				zonecode:'',
				location:'',
				itemcode:'',
				itemname:'',	
				spec:'',
				lot:'',
				locationqty:'',
				countqty:'',
				diffqty:'',				
				checkflag:0,
				checktime:"",
			},
  		DataList: [],
			selected:[],
  		checkList: [],
  		vuetifyDefaultPage: {
  			'items-per-page-text': '每页个数',
  			'items-per-page-options': [10, 20, 50, 100]
  		},
  		HOrderLoading: true,
  		HOrderTotalCount: 0,
  		HOrderOptions: {
  			//页数
  			page: 1,
  			//每页行数
  			itemsPerPage: 10
  		},
			DialogHeader:"",
  		leftCheckMaterialValid: false,
  		//领料单 表单信息
  		leftMaterialRequestOrderModel: {},
  		leftMaterialValid: true,
  		//领料单 需要数量规则
  		rules: {
  		    required: value => !!value || '值不能为空！',
  		    counter: value => value.length <= 20 || '字符长度不能超过20!',
  				num: value => value > 0 || '值要大于0！',
  				true: value => {
  					const pattern = /^[0-9]*$/
  					return pattern.test(value) || '请输入合法数字!'
  				}
  		 },
			 SelectID:"",
  	}),
  watch: {
  	HOrderOptions: {
  		handler() {
  			this.loadDataList()
  		},
  		deep: true
  	}
  },
  	created() {  
			//获取单据信息
  		this.loadDataList()
  	},
  	methods: {
  		//搜索
  		search() {
  			this.loadCuttingDetailList()
  		},
  		//加载单据信息
  		loadDataList() {
  			var that = this;
				that.HOrderLoading = true;
				that.DataList = [];
  			this.$httpRequest({
  				url: `WMS/WmsBillCountDetails/GetBillListByPage?pageIndex=${this.HOrderOptions.page}&pageSize=${this.HOrderOptions.itemsPerPage}`,
  				method: 'get'
  			}).then(function(response) {
  				if (response.status == 1) {
  					that.DataList = response.data.result;
						that.HOrderTotalCount = response.data.pagination.totalRecords;
						that.HOrderLoading = false;
  				} else {
  					that.$message.error(response.info);
  				}
  			})
  		},
  		// 打开编辑对话框
  		EditDialog(item) {
				this.DialogBill.id = item.id;
				this.DialogBill.dbid = item.dbid;
				this.DialogBill.isavailable = item.isavailable;
				this.DialogBill.created_by = item.created_by;
				this.DialogBill.created_byname = item.created_byname;
				this.DialogBill.updated_by = item.updated_by;
				this.DialogBill.updated_byname = item.updated_byname;
				this.DialogBill.company = item.company;
				this.DialogBill.created_time = item.created_time;
				this.DialogBill.updated_time = item.updated_time;
				this.DialogBill.accountingbookcode = item.accountingbookcode;
				this.DialogBill.sourceorder = item.sourceorder;
				this.DialogBill.project = item.project;
				this.DialogBill.warehouse = item.warehouse;
				this.DialogBill.zonecode = item.zonecode;
				this.DialogBill.location = item.location;
				this.DialogBill.itemcode = item.itemcode;
				this.DialogBill.itemname = item.itemname;
				this.DialogBill.spec = item.spec;
				this.DialogBill.locationqty = item.locationqty;
				this.DialogBill.countqty = item.countqty;
				this.DialogBill.diffqty = item.diffqty;
				this.DialogBill.checkflag = item.checkflag;				
				this.DialogBill.checktime = item.checktime;
				this.DialogHeader = "编辑盘点单";
				this.AddOrEditDialog = true;
  		},
			// 打开新增对话框
			AddDialog() {
				this.DialogBill.sourceorder = "";
				this.DialogBill.project = "";
				this.DialogBill.warehouse = "";
				this.DialogBill.zonecode = "";
				this.DialogBill.location = "";
				this.DialogBill.itemcode = "";
				this.DialogBill.itemname = "";
				this.DialogBill.spec = "";
				this.DialogBill.lot = "";
				this.DialogBill.locationqty = "";
				this.DialogBill.countqty = "";
				this.DialogBill.diffqty = "";				
				this.DialogBill.checkflag = 0;
				this.DialogBill.checktime = "";
				this.DialogHeader = "新增盘点单";
				this.AddOrEditDialog = true;
			},
  		//提交
  		confirmOrder() {
  			var that = this;
				if(that.DialogHeader == "新增盘点单")
				{
					this.$httpRequest({
						url: `/WMS/WmsBillCountDetails/Add`,
						method: 'post',
						data:{					
								sourceorder : that.DialogBill.sourceorder,
								project : that.DialogBill.project,
								warehouse : that.DialogBill.warehouse,
								zonecode : that.DialogBill.zonecode,
								location : that.DialogBill.location,
								itemcode : that.DialogBill.itemcode,
								itemname : that.DialogBill.itemname,
								spec : that.DialogBill.spec,
								lot : that.DialogBill.lot,
								locationqty : that.DialogBill.locationqty,
								countqty : that.DialogBill.countqty,
								diffqty : that.DialogBill.diffqty,								
								checkflag : that.DialogBill.checkflag,
								checktime : that.DialogBill.checktime,
						}
					}).then(function(response) {
					
						if (response.status == 1) {
							that.loadDataList();
							that.AddOrEditDialog = false;
							that.$message.success("新增盘点单成功！");
						} else {
							that.$message.error(response.info);
						}
					})
				}
				else
				{
					this.$httpRequest({
						url: `/WMS/WmsBillCountDetails/Update`,
						method: 'post',
						data:{		
								id : that.DialogBill.id,
								dbid : that.DialogBill.dbid,
								isavailable : that.DialogBill.isavailable,
								created_by : that.DialogBill.created_by,
								created_byname : that.DialogBill.created_byname,
								updated_by : that.DialogBill.updated_by,
								updated_byname : that.DialogBill.updated_byname,
								company : that.DialogBill.company,
								created_time : that.DialogBill.created_time,
								updated_time : that.DialogBill.updated_time,
								accountingbookcode : that.DialogBill.accountingbookcode,
								sourceorder : that.DialogBill.sourceorder,
								project : that.DialogBill.project,
								warehouse : that.DialogBill.warehouse,
								zonecode : that.DialogBill.zonecode,
								location : that.DialogBill.location,
								itemcode : that.DialogBill.itemcode,
								itemname : that.DialogBill.itemname,
								spec : that.DialogBill.spec,
								lot : that.DialogBill.lot,
								locationqty : that.DialogBill.locationqty,
								countqty : that.DialogBill.countqty,
								diffqty : that.DialogBill.diffqty,								
								checkflag : that.DialogBill.checkflag,
								checktime : that.DialogBill.checktime,
						}
					}).then(function(response) {
					
						if (response.status == 1) {
							that.loadDataList();
							that.AddOrEditDialog = false;
							that.$message.success("编辑盘点单成功！");
						} else {
							that.$message.error(response.info);
						}
					})
				}
  			
  		},
  		//取消 取消领料单
  		cancelOrder() {
  			this.AddOrEditDialog = false;
  		},
			deleteOrder(){
				this.deldialog = true;	
			},
			SureDelete()
			{
				var that = this;
				for(var i=0; i<that.selected.length; i++)
				{
					this.$httpRequest({
						url: `/WMS/WmsBillCountDetails/Delete/${that.selected[i].id}`,
						method: 'delete'											
					}).then(function(response) {					
						if (response.status == 1) {							
							that.$message.success("删除成功！");							
						} else {
							that.$message.error("删除失败！");
						}
					})
				}
				that.loadDataList();
				this.deldialog = false;
				this.refreshApps();
			},
			searchinfo(){
				var that = this;
				that.HOrderLoading = true;
				that.DataList = [];
				this.$httpRequest({
					url: `WMS/WmsBillCountDetails/Search?Ssourceorder=${this.Ssourceorder}&Sitemcode=${this.Sitemcode}&Sitemname=${this.Sitemname}&Sproject=${this.Sproject}&Scheckflag=${this.flagselect}&pageIndex=${this.HOrderOptions.page}&pageSize=${this.HOrderOptions.itemsPerPage}`,
					method: 'get'
				}).then(function(response) {
					if (response.status == 1) {
						that.DataList = response.data.result;
						that.HOrderTotalCount = response.data.pagination.totalRecords;
						that.HOrderLoading = false;
					} else {
						that.$message.error(response.info);
					}
				})
			},
			refreshApps(){
				this.Ssourceorder = "";
				this.Sitemcode = "";
				this.Sitemname = "";
				this.Sproject = "";
				this.flagselect = -1;
				this.selected = [];
				this.HOrderOptions.page = 1;
				this.loadDataList();
			}
			
  	}
  
  }

</script>

<style>
	$select-small-chips-dense-selections-min-height{
		height:40px;
	}
</style>